#include <cstddef>
#include <deque>

namespace xywl {
    template<class T, class Container = std::deque<T>>
    class stack {
        public:
            // 入栈
            void push(const T& x) {
                _conn.push_back(x);
            }
            // 出栈
            void pop() {
                _conn.pop_back();
            }
            // 访问栈顶元素
            const T& top() const {
                return _conn.back();
            }
            // 获取栈的大小
            size_t size() const {
                return _conn.size();
            }
            // 判空
            bool empty() const {
                return _conn.empty();
            }
        private:
            Container _conn;
    };
}